class Utils {
    //公共的路径
    constructor() {
        this.baseUrl = 'https://code.itndedu.com/pz'
    }
    // 获取用户信息
    getUserInfo() {
        //调用登录的API
        uni.login({
            success: res => {
                console.log(res);
                this.request({
                    url: '/auth/wxLogin',
                    data: {
                        code: res.code
                    },
                    success: res => {
                        console.log('LoginRes:', res)
                    },
                    fail: err => {
                        console.log('LoginErr:', err)
                    }
                })
            }
        });
    }
    //封装的request方法
    request(option = {
        showLoading: false
    }) {
        //判断url是否存在
        if (!option.url) {
            return false
        }
        if (option.showLoading) {
            this.showLoading()
        }
        uni.request({
            url: this.baseUrl + option.url,
            data: option.data ? option.data : {},
            header: option.header ? option.header : {},
            method: option.method ? option.method : 'GET',
            success: (response) => {
                uni.hideLoading()
                //后端返回的数据是异常的
                if (response.data.code != 10000) {
                    //将失败的结果返回出去
                    if (option.fail && typeof option.fail == 'function') {
                        option.fail(response)
                    }
                } else {
                    //将成功的结果返回
                    if (option.success && typeof option.success == 'function') {
                        option.success(response.data)
                    }
                }
            },
            fail: reponse => {
                console.log(response);
                uni.hideLoading()
                if (option.fail && typeof option.fail === 'function') {
                    option.fail(response);
                }
            }

        })
    }
    //创建加载的loading效果
    showLoading() {
        //利用缓存
        const isShowLoading = uni.getStorageSync('isShowLoading')
        if (isShowLoading) {
            uni.hideLoading()
            uni.setStorageSync('isShowLoading', false)
        }
        uni.showLoading({
            title: '加载中...',
            complete: function() {
                uni.setStorageSync('isShowLoading', true)
            },
            fail: function() {
                uni.setStorageSync('isShowLoading', false)
            }
        })
    }
}

export default new Utils()